package com.weavernorth.salary;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;

import java.math.BigDecimal;

/**
 * 此action是店铺销售提成(提率)对比月任务,正价销售汇总,折价销售 汇总,给出提示
 */
public class ShopSalarControlAction extends BaseBean implements Action{

	public static Log log = LogFactory.getLog(ShopSalarControlAction.class.getName());

	/**
	 * 终端店铺销售提成申请表 第一节点
	 */
	@Override
	public String execute(RequestInfo request) {
		//数据操作
		RecordSet rs=new RecordSet();
		//当前表
		String strTable=request.getRequestManager().getBillTableName();
		//当前请求id
		String strRequestid= Util.null2String(request.getRequestid());
		//主表月任务
		Double douMainYrw=0.0;
		//主表正价销售任务
		Double douMainZjxsrw=0.0;
		//主表支援正价销售
		Double douMainZyzjxsrw=0.0;
		//主表折价销售任务
		Double douMainZzjxsrw=0.0;
		//主表折价销售任务
		Double douMainZyZzjxsrw=0.0;
		//明细表月任务总和
		BigDecimal douYrwSum=new BigDecimal("0.0");
		//明细表正价销售总和
		BigDecimal douZjxseSum=new BigDecimal("0.0");
		//明细表折价销售总和
		BigDecimal douZzjxseSum=new BigDecimal("0.0");


		//小程序正价总和
		BigDecimal bigXcxzjSum=new BigDecimal(0.0);
		//小程序折价总和
		BigDecimal bigXcxZheSum=new BigDecimal(0.0);
		//团购正价总和
		BigDecimal bigTgzjSum=new BigDecimal(0.0);
		//团购折价总和
		BigDecimal bigTgZheSum=new BigDecimal(0.0);
		//微销正价总和
		BigDecimal bigWxzjSum=new BigDecimal(0.0);
		//微销折价总和
		BigDecimal bigWxZheSum=new BigDecimal(0.0);

		//小程序正价
		Double douXcxzj=0.0;
		//小程序折价
		Double douXcxZhe=0.0;
		//团购正价
		Double douTgzj=0.0;
		//团购折价
		Double douTgZhe=0.0;
		//微销正价
		Double douWxzj=0.0;
		//微销折价
		Double douWxZhe=0.0;

		//查询当前表数据
		String sql="select * from "+strTable+" fm,"+strTable+"_dt1 fmd where fm.id=fmd.mainid and fm.requestid=? and (fmd.sfdqdrw='0' or fmd.sfdqdrw is null)";
         log.info("查询店铺销售提成信息:"+sql+";requestid:"+strRequestid);
         rs.executeQuery(sql,strRequestid);
         while (rs.next()){
			 douMainYrw=Util.getDoubleValue(rs.getString("yrwhz"));
			 douMainZjxsrw=Util.getDoubleValue(rs.getString("zjxshz"));
			 douMainZzjxsrw=Util.getDoubleValue(rs.getString("zjxshzz"));
			 //小程序正价主表
			 douXcxzj=Util.getDoubleValue(rs.getString("xcxzjxshz"),0.0);
			 //小程序折价主表
			 douXcxZhe=Util.getDoubleValue(rs.getString("xcxzjxshzz"),0.0);
			 //微销正价主表
			 douWxzj=Util.getDoubleValue(rs.getString("wxzjxshz"),0.0);
			 //微销折价主表
			 douWxZhe=Util.getDoubleValue(rs.getString("wxzjxshzz"),0.0);
			 //团购正价主表
			 douTgzj=Util.getDoubleValue(rs.getString("tgzjxshz"),0.0);
			 //团购折价主表
			 douTgZhe=Util.getDoubleValue(rs.getString("tgzjxshzz"),0.0);
			 //小程序正价明细表
			 BigDecimal bigXcxzj=new BigDecimal(Util.null2o(rs.getString("xcxzjxse")));
			 bigXcxzjSum=bigXcxzjSum.add(bigXcxzj);
			 //小程序折价明细表
			 BigDecimal bigXcxZhe=new BigDecimal(Util.null2o(rs.getString("xcxzjxsee")));
			 bigXcxZheSum=bigXcxZheSum.add(bigXcxZhe);
			 //微销正价明细表
			 BigDecimal bigWxzj=new BigDecimal(Util.null2o(rs.getString("wxzjxse")));
			 bigWxzjSum=bigWxzjSum.add(bigWxzj);
			 //微销折价明细表
			 BigDecimal bigWxzhej=new BigDecimal(Util.null2o(rs.getString("wxzjxsee")));
			 bigWxZheSum=bigWxZheSum.add(bigWxzhej);
			 //团购正价明细表
			 BigDecimal bigTgzj=new BigDecimal(Util.null2o(rs.getString("tgzjxse")));
			 bigTgzjSum=bigTgzjSum.add(bigTgzj);
			 //团购折价明细表
			 BigDecimal bigTgzhej=new BigDecimal(Util.null2o(rs.getString("tgzjxsee")));
			 bigTgZheSum=bigTgZheSum.add(bigTgzhej);


         	//明细表销售人员的修改后的月任务
			 BigDecimal douYrw=new BigDecimal(Util.null2o(rs.getString("yrw")));
			 douYrwSum=douYrwSum.add(douYrw);
			 //销售人员正价销售额
			 BigDecimal douZjxse=new BigDecimal(Util.null2o(rs.getString("zjxsee")));
			 douZjxseSum=douZjxseSum.add(douZjxse);
			 //销售人员折价销售额
			 BigDecimal bigZzjxse=new BigDecimal(Util.null2o(rs.getString("zjxse")));
			 douZzjxseSum=douZzjxseSum.add(bigZzjxse);
		 }
		 log.info("月任务,店铺:"+douMainYrw+",总和:"+douYrwSum);
		 //销售人员的修改后的月任务不可大于店铺总任务
		 if(douYrwSum.doubleValue()<douMainYrw){
         	request.getRequestManager().setMessagecontent("销售人员调整后的月任务总和不可小于店铺总月任务");
         	return FAILURE_AND_CONTINUE;
		 }
		log.info("正价销售,店铺:"+douMainZjxsrw+",总和:"+douZjxseSum);
		 //正价销售总和不可以大于店铺正价销售+支援正价销售的值
		 if(douZjxseSum.doubleValue()>(douMainZjxsrw)){
			 request.getRequestManager().setMessagecontent("销售人员调整后的正价销售总和不可大于店铺的正价销售");
			 return FAILURE_AND_CONTINUE;
		 }
		log.info("折价销售,店铺:"+douMainZzjxsrw+",总和:"+douZzjxseSum.doubleValue());
		//折价销售总和不可以大于店铺折价销售+支援折价销售的值
		if(douZzjxseSum.doubleValue()>douMainZzjxsrw){
			request.getRequestManager().setMessagecontent("销售人员调整后的折价销售总和不可大于店铺的折价销售");
			return FAILURE_AND_CONTINUE;
		}
      //小程序正价对比
		if(bigXcxzjSum.doubleValue()>douXcxzj){
			request.getRequestManager().setMessagecontent("销售人员调整后的小程序正价销售总和不可大于店铺的小程序正价销售");
			return FAILURE_AND_CONTINUE;
		}
		//小程序折价对比
		if(bigXcxZheSum.doubleValue()>douXcxZhe){
			request.getRequestManager().setMessagecontent("销售人员调整后的小程序折价销售总和不可大于店铺的小程序折价销售");
			return FAILURE_AND_CONTINUE;
		}
		//微销正价
		if(bigWxzjSum.doubleValue()>douWxzj){
			request.getRequestManager().setMessagecontent("销售人员调整后的微销正价销售总和不可大于店铺的微销正价销售");
			return FAILURE_AND_CONTINUE;
		}
		//微销折价
		if(bigWxZheSum.doubleValue()>douWxZhe){
			request.getRequestManager().setMessagecontent("销售人员调整后的微销折价销售总和不可大于店铺的微销折价销售");
			return FAILURE_AND_CONTINUE;
		}
		//团购正价
		if(bigTgzjSum.doubleValue()>douTgzj){
			request.getRequestManager().setMessagecontent("销售人员调整后的团购正价销售总和不可大于店铺的团购正价销售");
			return FAILURE_AND_CONTINUE;
		}
		//团购折价
		if(bigTgZheSum.doubleValue()>douTgZhe){
			request.getRequestManager().setMessagecontent("销售人员调整后的团购折价销售总和不可大于店铺的团购折价销售");
			return FAILURE_AND_CONTINUE;
		}
	  return SUCCESS;
	}
}
